<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:zj="http://www.zju.edu.cn" xmlns:y="http://www.zju.edu.cn/ZJ" exclude-result-prefixes="zj y">
  <xsl:import href="EditItems_Trans.xslt"/>
  <xsl:import href="DetailItems.xslt"/>
  <xsl:attribute-set name="y:ErrorFontAttrs">
    <xsl:attribute name="color">#ff0000</xsl:attribute>
    <xsl:attribute name="nowrap"/>
  </xsl:attribute-set>
  <xsl:variable name="zj:Error" select="$zj:Toolkit/ERROR"/>
  <xsl:template name="y:ProcessHint">
    <xsl:param name="Field"/>
    <xsl:if test="$Field/zj:Hint">
      <xsl:choose>
        <xsl:when test="string-length($Field/zj:Hint) &lt;= 20">
          <br/>
          <font color="#0000ff" nowrap="nowrap">
            <xsl:value-of select="$Field/zj:Hint"/>
          </font>
        </xsl:when>
        <xsl:otherwise>
          <img src="../images2/icon.jpg" alt="{$Field/zj:Hint}"/>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:if>
  </xsl:template>
  <xsl:template name="y:ProcessError">
    <xsl:param name="FieldName"/>
    <xsl:param name="Pos" select="1"/>
    <xsl:variable name="ErrorField" select="$zj:Error[FIELD_NAME = $FieldName and ERROR_POS = $Pos - 1]"/>
    <xsl:if test="$ErrorField">
      <font xsl:use-attribute-sets="y:ErrorFontAttrs">
        <xsl:value-of select="$ErrorField/ERROR_VALUE"/>
      </font>
      <br/>
    </xsl:if>
  </xsl:template>
  <xsl:template name="y:ProcessError1">
    <xsl:param name="FieldName"/>
    <xsl:param name="Pos" select="1"/>
    <xsl:variable name="ErrorField" select="$zj:Error[FIELD_NAME = $FieldName and ERROR_POS = $Pos - 1]"/>
    <xsl:if test="$ErrorField">
      <xsl:attribute name="style">background-color:#FCF9CB</xsl:attribute>
    </xsl:if>
  </xsl:template>
  <xsl:template name="y:CopyAttribute">
    <xsl:param name="Field"/>
    <xsl:param name="Value"/>
    <xsl:param name="Pos"/>
    <xsl:call-template name="y:ProcessError1">
      <xsl:with-param name="FieldName" select="$Field/zj:FieldName"/>
      <xsl:with-param name="Pos" select="$Pos"/>
    </xsl:call-template>
    <xsl:call-template name="y:ProcessAttribute">
      <xsl:with-param name="Field" select="$Field"/>
      <xsl:with-param name="Value" select="$Value"/>
    </xsl:call-template>
  </xsl:template>
  <xsl:template name="y:CheckBox">
    <xsl:param name="Field"/>
    <xsl:param name="Value"/>
    <xsl:variable name="CheckValue" select="$Field/zj:Extension/@CheckValue"/>
    <xsl:variable name="UnCheckValue" select="$Field/zj:Extension/@UnCheckValue"/>
    <xsl:attribute name="value">
      <xsl:value-of select="$CheckValue"/>
    </xsl:attribute>
    <xsl:if test="$Value = $CheckValue">
      <xsl:attribute name="checked"/>
    </xsl:if>
    <xsl:attribute name="uncheckvalue">
      <xsl:value-of select="$UnCheckValue"/>
    </xsl:attribute>
  </xsl:template>
  <xsl:template name="zj:TextArea">
    <xsl:param name="Field"/>
    <xsl:param name="Value"/>
    <xsl:param name="Pos"/>
    <xsl:call-template name="zj:Caption">
      <xsl:with-param name="IsEmpty" select="$Field/@IsEmpty = 'true'"/>
      <xsl:with-param name="Title" select="$Field/zj:DisplayName"/>
    </xsl:call-template>
    <td class="td-right">
      <xsl:call-template name="zj:IsTwoColumn">
        <xsl:with-param name="IsTwoColumn" select="$Field/zj:Display/@ThreeColumn"/>
      </xsl:call-template>
      <xsl:call-template name="y:ProcessError">
        <xsl:with-param name="FieldName" select="$Field/zj:FieldName"/>
        <xsl:with-param name="Pos" select="$Pos"/>
      </xsl:call-template>
      <textarea name="{$Field/zj:FieldName}" id="{$Field/zj:FieldName}" rows="3" class="wid90">
        <xsl:call-template name="y:CopyAttribute">
          <xsl:with-param name="Field" select="$Field"/>
          <xsl:with-param name="Value" select="$Value"/>
          <xsl:with-param name="Pos" select="$Pos"/>
        </xsl:call-template>
        <xsl:value-of select="$Value"/>
      </textarea>
      <xsl:call-template name="y:ProcessHint">
        <xsl:with-param name="Field" select="$Field"/>
      </xsl:call-template>
    </td>
  </xsl:template>
  <xsl:template name="zj:Radio">
    <xsl:param name="Field"/>
    <xsl:param name="Value"/>
    <xsl:param name="Pos"/>
    <xsl:call-template name="zj:Caption">
      <xsl:with-param name="IsEmpty" select="$Field/@IsEmpty = 'true'"/>
      <xsl:with-param name="Title" select="$Field/zj:DisplayName"/>
    </xsl:call-template>
    <td class="td-right">
      <xsl:call-template name="zj:IsTwoColumn">
        <xsl:with-param name="IsTwoColumn" select="$Field/zj:Display/@ThreeColumn"/>
      </xsl:call-template>
      <xsl:call-template name="y:ProcessError">
        <xsl:with-param name="FieldName" select="$Field/zj:FieldName"/>
        <xsl:with-param name="Pos" select="$Pos"/>
      </xsl:call-template>
      <xsl:variable name="CodeTable" select="$zj:Toolkit/*[local-name()=$Field/zj:CodeTable]"/>
      <xsl:for-each select="$CodeTable">
        <input type="radio" style="border:0" name="{$Field/zj:FieldName}" id="{$Field/zj:FieldName}" value="{CODE_VALUE}">
          <xsl:if test="CODE_VALUE=$Value">
            <xsl:attribute name="checked">1</xsl:attribute>
          </xsl:if>
          <xsl:call-template name="y:ProcessAttribute">
            <xsl:with-param name="Field" select="$Field"/>
            <xsl:with-param name="Value" select="$Value"/>
          </xsl:call-template>
        </input>
        <xsl:value-of select="CODE_NAME"/>
        <img height="1" src="../images/empty.gif" width="10"/>
      </xsl:for-each>
    </td>
  </xsl:template>
  <xsl:template name="zj:Combo">
    <xsl:param name="Field"/>
    <xsl:param name="Value"/>
    <xsl:param name="Pos"/>
    <xsl:call-template name="zj:Caption">
      <xsl:with-param name="IsEmpty" select="$Field/@IsEmpty = 'true'"/>
      <xsl:with-param name="Title" select="$Field/zj:DisplayName"/>
    </xsl:call-template>
    <td class="td-right">
      <xsl:call-template name="zj:IsTwoColumn">
        <xsl:with-param name="IsTwoColumn" select="$Field/zj:Display/@ThreeColumn"/>
      </xsl:call-template>
      <xsl:call-template name="y:ProcessError">
        <xsl:with-param name="FieldName" select="$Field/zj:FieldName"/>
        <xsl:with-param name="Pos" select="$Pos"/>
      </xsl:call-template>
      <xsl:variable name="Various" select="$Field/zj:EasySearch/@RegName"/>
      <xsl:variable name="CodeTableName">
        <xsl:choose>
          <xsl:when test="$Various">
            <xsl:value-of select="$Field/zj:FieldName"/>
          </xsl:when>
          <xsl:otherwise>
            <xsl:value-of select="$Field/zj:CodeTable"/>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:variable>
      <xsl:variable name="CodeTable" select="$zj:Toolkit/*[local-name()=$CodeTableName]" />
      <select name="{$Field/zj:FieldName}" id="{$Field/zj:FieldName}">
        <xsl:call-template name="y:CopyAttribute">
          <xsl:with-param name="Field" select="$Field"/>
          <xsl:with-param name="Value" select="$Value"/>
          <xsl:with-param name="Pos" select="$Pos"/>
        </xsl:call-template>
        <xsl:if test="$Field/@IsEmpty = 'true'">
          <option value="">
            <xsl:attribute name="selected"/>
            <xsl:value-of select="$Field/zj:Extension/@EmptyTitle"/>
          </option>
        </xsl:if>
        <xsl:for-each select="$CodeTable">
          <option value="{CODE_VALUE}">
            <xsl:if test="CODE_VALUE=$Value">
              <xsl:attribute name="selected"/>
            </xsl:if>
            <xsl:value-of select="CODE_NAME"/>
            <xsl:if test="$Various">
              <xsl:value-of select="concat('(', CODE_VALUE, ')')"/>
            </xsl:if>
          </option>
        </xsl:for-each>
      </select>
      <xsl:call-template name="y:ProcessHint">
        <xsl:with-param name="Field" select="$Field"/>
      </xsl:call-template>
    </td>
  </xsl:template>
  <xsl:template name="zj:CheckListGroup">
    <xsl:param name="Field"/>
    <xsl:param name="Value"/>
    <xsl:param name="Pos"/>
    <xsl:call-template name="zj:Caption">
      <xsl:with-param name="IsEmpty" select="$Field/@IsEmpty = 'true'"/>
      <xsl:with-param name="Title" select="$Field/zj:DisplayName"/>
    </xsl:call-template>
    <td class="td-right">
      <xsl:call-template name="zj:IsTwoColumn">
        <xsl:with-param name="IsTwoColumn" select="$Field/zj:Display/@ThreeColumn"/>
      </xsl:call-template>
      <xsl:call-template name="y:ProcessError">
        <xsl:with-param name="FieldName" select="$Field/zj:FieldName"/>
        <xsl:with-param name="Pos" select="$Pos"/>
      </xsl:call-template>
      <input type="hidden" name="{$Field/zj:FieldName}" id="{$Field/zj:FieldName}" value="{$Value}"/>
      <table width="100%" cellpadding="0" height="100%" border="0" cellspacing="1">
        <tr>
          <xsl:variable name="CodeTable" select="$zj:Toolkit/*[local-name()=$Field/zj:CodeTable]"/>
          <xsl:variable name="SYhao">'</xsl:variable>
          <xsl:for-each select="$CodeTable">
            <td class="td-left">
              <INPUT id="chk_{$Field/zj:FieldName}" style="border:0px" onclick="checklistGroup('{$Field/zj:FieldName}')" type="checkbox" value="{CODE_VALUE}">
                <xsl:if test="contains($Value,concat($SYhao, CODE_VALUE, $SYhao))">
                  <xsl:attribute name="checked">true</xsl:attribute>
                </xsl:if>
                <xsl:call-template name="y:ProcessAttribute">
                  <xsl:with-param name="Field" select="$Field"/>
                  <xsl:with-param name="Value" select="$Value"/>
                </xsl:call-template>
              </INPUT>
              <xsl:value-of select="CODE_NAME"/>
            </td>
          </xsl:for-each>
        </tr>
      </table>
    </td>
  </xsl:template>
  <xsl:template name="zj:HTML">
    <xsl:param name="Field"/>
    <xsl:param name="Value"/>
    <xsl:call-template name="y:HTML">
      <xsl:with-param name="Field" select="$Field"/>
      <xsl:with-param name="Value" select="$Value"/>
    </xsl:call-template>
  </xsl:template>

  <xsl:template name="zj:ValidateBox">
    <xsl:param name="UIControl"/>
    <xsl:if test="translate($UIControl/zj:Required, 'true', 'TRUE') = 'TRUE'">
      <xsl:attribute name="required">
        
      </xsl:attribute>
    </xsl:if>
    <xsl:if test="$UIControl/zj:ValidType">
      <xsl:attribute name="validType">
        <xsl:value-of select="$UIControl/zj:ValidType"></xsl:value-of>
      </xsl:attribute>
    </xsl:if>
    <xsl:if test="$UIControl/zj:MissingMessage">
      <xsl:attribute name="missingMessage">
        <xsl:value-of select="$UIControl/zj:MissingMessage"></xsl:value-of>
      </xsl:attribute>
    </xsl:if>
    <xsl:if test="$UIControl/zj:InvalidMessage">
      <xsl:attribute name="invalidMessage">
        <xsl:value-of select="$UIControl/zj:InvalidMessage"></xsl:value-of>
      </xsl:attribute>
    </xsl:if>
  </xsl:template>
</xsl:stylesheet>
